//
//  DMFacebookAdCountManager.h
//  DualMediationSDK
//
//  Created by YeJary on 2025/1/21.
//  Facebook广告计数管理工具类 - 统一管理Facebook广告的展示和点击计数逻辑
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * Facebook广告计数管理工具类
 * 提供统一的Facebook广告计数、日期检查、本地存储等功能
 * 支持线程安全操作和按天重置计数
 */
@interface DMFacebookAdCountManager : NSObject

/**
 * 获取单例实例
 * @return DMFacebookAdCountManager单例对象
 */
+ (instancetype)sharedManager;

/**
 * 处理Facebook广告控制逻辑
 * @param adNetwork 广告网络名称
 * @param eventType 事件类型："display" 或 "click"
 * @param managerType 管理器类型：用于区分不同的广告管理器（如"DMRewardedVideo"、"DualMediationMAX"）
 */
- (void)handleFacebookAdControlWithAdNetwork:(NSString *)adNetwork 
                                   eventType:(NSString *)eventType 
                                 managerType:(NSString *)managerType;

/**
 * 判断是否为Facebook广告网络
 * @param adNetwork 广告网络名称
 * @return YES表示是Facebook广告网络
 */
- (BOOL)isFacebookAdNetwork:(NSString *)adNetwork;

/**
 * 获取Facebook展示次数（线程安全）
 * @param managerType 管理器类型
 * @return 展示次数
 */
- (NSInteger)getFacebookShowCountForManager:(NSString *)managerType;

/**
 * 获取Facebook点击次数（线程安全）
 * @param managerType 管理器类型
 * @return 点击次数
 */
- (NSInteger)getFacebookClickCountForManager:(NSString *)managerType;

/**
 * 检查并重置按天计数（线程安全）
 * @param managerType 管理器类型
 */
- (void)checkAndResetDailyFacebookCountsForManager:(NSString *)managerType;

@end

NS_ASSUME_NONNULL_END